package cn.zwx.admin.web.system.service;

import cn.zwx.admin.web.common.core.domain.PageQuery;
import cn.zwx.admin.web.common.core.page.TableDataInfo;
import cn.zwx.admin.web.system.domain.bo.SysOssBo;
import cn.zwx.admin.web.system.domain.vo.SysOssVo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Collection;
import java.util.List;

/**
 * 文件上传 服务层
 *
 * @author zhangwenxue
 */
public interface ISysOssService {

    /**
     * queryPageList
     * @param sysOss sysOss
     * @param pageQuery pageQuery
     * @return TableDataInfo
     */
    TableDataInfo<SysOssVo> queryPageList(SysOssBo sysOss, PageQuery pageQuery);

    /**
     * 查询oss信息
     * @param ossIds ossId
     * @return List<SysOssVo
     */
    List<SysOssVo> listByIds(Collection<Long> ossIds);

    /**
     * 根据id查询
     * @param ossId ossId
     * @return SysOssVo
     */
    SysOssVo getById(Long ossId);

    /**
     * 上传文件
     * @param file file
     * @return SysOssVo
     */
    SysOssVo upload(MultipartFile file);

    /**
     * 下载文件
     * @param ossId ossId
     * @param response response
     * @throws IOException IOException
     */
    void download(Long ossId, HttpServletResponse response) throws IOException;

    /**
     * 删除文件
     * @param ids ids
     * @param isValid isValid
     * @return Boolean
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

}
